.TH std::chrono::month::operator++,std::chrono::month::operator-- 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::chrono::month::operator++,std::chrono::month::operator-- \- std::chrono::month::operator++,std::chrono::month::operator--

.SH Synopsis
   constexpr std::chrono::month& operator++() noexcept;     \fB(1)\fP \fI(since C++20)\fP
   constexpr std::chrono::month operator++( int ) noexcept; \fB(2)\fP \fI(since C++20)\fP
   constexpr std::chrono::month& operator--() noexcept;     \fB(3)\fP \fI(since C++20)\fP
   constexpr std::chrono::month operator--( int ) noexcept; \fB(4)\fP \fI(since C++20)\fP

   Adds or subtracts 1 from the month value, reducing the result modulo 12 to an
   integer in the range [1, 12].

   1,2) Performs *this += std::chrono::months{1};.
   3,4) Performs *this -= std::chrono::months{1};.

.SH Parameters

   \fI(none)\fP

.SH Return value

   1,3) A reference to this month after modification.
   2,4) A copy of the month made before modification.

.SH Notes

   After a call to one of these functions, ok() is always true.

.SH Example


// Run this code

 #include <cassert>
 #include <chrono>
 #include <iostream>

 int main()
 {
     std::chrono::month m{6};

     ++m;
     assert(m == std::chrono::month(7));

     --m;
     assert(m == std::chrono::month(6));

     m = std::chrono::December;
     m++; // rounds up to January
     assert(m.ok());
     std::cout << unsigned(m) << '\\n';

     m = std::chrono::January;
     m--; // rounds down to December
     assert(m.ok());
     std::cout << unsigned(m) << '\\n';
 }

.SH Output:

 1
 12

.SH See also

   operator+= adds or subtracts a number of months
   operator-= \fI(public member function)\fP
   operator+  performs arithmetic on months
   operator-  \fI(function)\fP
   (C++20)
